package main

import (
	"fmt"
	"math"
	"time"
)

func main() {
	/*
		// 获取指定日期时间的对象
		t := time.Date(2025, 11, 11, 0, 0, 0, 0, time.Local)
		// 修改日期时间，会得到一个新的对象
		// 添加
		t = t.Add(-time.Hour * 3)
		// t = t.Add(time.Hour * 24)
		fmt.Println(t)
		now := time.Now()
		// 减,计算两个日期的差值
		d := t.Sub(now)
		fmt.Println(d)

		// 日期时间对象比较
		now := time.Now()
		// now1 := time.Now()
		t := time.Date(2026, 7, 5, 18, 20, 30, 0, time.Local)
		// 比较两者是否相等
		// fmt.Println(now.Equal(now1))
		// 判断是否在之前
		fmt.Println(now.Before(t))
		// 判断是否在之后
		fmt.Println(now.After(t))
	*/
	// 计算距离2025年3月8日还有x天x小时x分x秒
	// 获取当前时间的对象
	now := time.Now()
	// 获取目标时间的对象
	target := time.Date(2025, 3, 8, 0, 0, 0, 0, time.Local)
	// 计算差值: 目标时间-开始时间
	t := target.Sub(now)
	fmt.Println(t)
	// 获取差值中的时分秒
	day := math.Floor(t.Hours() / 24)
	hour := math.Floor(t.Hours() - day*24)
	// 将分钟浮点型转为整型
	minute := int(t.Minutes())
	// fmt.Printf("值%v, 类型%T\n", minute, minute)
	// 通过取余获取分钟部分
	minute = minute % 60
	// fmt.Println(day, hour, minute)
	// 获取的秒钟转为整型
	second := int(t.Seconds()) % 60
	// fmt.Println(second)
	fmt.Printf("计算距离2025年3月8日还有%v天%v小时%v分%v秒", day, hour, minute, second)

}
